//#include"ObjectPool.h"
//#include"ConCurrentAlloc.h"
//#include"Common.h"
//using std::cout;
//using std::endl;
//
//void alloc1()
//{
//	for (size_t i = 0; i < 5; i++)
//	{
//		void* ptr = ConCurrentAlloc(188);
//	}
//}
//
//void alloc2()
//{
//	for (size_t i = 0; i < 5; i++)
//	{
//		void* ptr = ConCurrentAlloc(1);
//	}
//}
//
//void TLS()
//{
//	std::thread t1(alloc1);
//	t1.join();
//	std::thread t2(alloc2);
//	t2.join();
//}
//
//void TestConcurrentAlloc1()
//{
//	void* p1 = ConCurrentAlloc(60);
//	void* p2 = ConCurrentAlloc(8);
//	void* p3 = ConCurrentAlloc(1);
//	void* p4 = ConCurrentAlloc(7);
//	void* p5 = ConCurrentAlloc(8);
//
//	cout << p1 << endl;
//	cout << p2 << endl;
//	cout << p3 << endl;
//	cout << p4 << endl;
//	cout << p5 << endl;
//
//	ConcurrentFree(p1);
//	ConcurrentFree(p2);
//	ConcurrentFree(p3);
//	ConcurrentFree(p4);
//	ConcurrentFree(p5);
//}
//
//void MultiThreadAlloc1()
//{
//	std::vector<void*> v;
//	for (size_t i = 0; i < 7; ++i)
//	{
//		void* ptr = ConCurrentAlloc(6);
//		v.push_back(ptr);
//	}
//
//	for (auto e : v)
//	{
//		ConcurrentFree(e);
//	}
//}
//
//void MultiThreadAlloc2()
//{
//	std::vector<void*> v;
//	for (size_t i = 0; i < 7; ++i)
//	{
//		void* ptr = ConCurrentAlloc(16);
//		v.push_back(ptr);
//	}
//
//	for (auto e : v)
//	{
//		ConcurrentFree(e);
//	}
//}
//
//void TestMultiThread()
//{
//	std::thread t1(MultiThreadAlloc1);
//	t1.join();
//	std::thread t2(MultiThreadAlloc2);
//
//	
//	t2.join();
//}
//
//void BigAlloc()
//{
//	void* p1 = ConCurrentAlloc(257 * 1024);
//	ConcurrentFree(p1);
//
//	void* p2 = ConCurrentAlloc(129 * 8 * 1024);
//	ConcurrentFree(p2);
//}
////
////int main()
////{
////	//TestObjectPool();
////	//TLS();
////
////    //TestConcurrentAlloc1();
////	//TestMultiThread();
////	//BigAlloc();
////	//TestMultiThread();
////	TestConcurrentAlloc1();
////	return 0;
////}